// Symbol是个独一无二的值，在任何地方，都想得到这个“独一无二”的值，那么就可以把Symbol进行全局注册
// 直接Symbol函数，创建的Symbol值永远都是新的值，所以还是需要全局注册。

// Symbol.for()：根据描述值，全局注册Symbol值，如果全局没有该描述值的Symbol值，那么创建。
// 如果已经存在，直接获取注册了的值。
let symbol1 = Symbol.for("symbol1");

let symbol2 = Symbol.for("symbol1");

console.log(symbol1 == symbol2); // true

// keyFor(symbol值)：如果symbol值是全局注册，那么返回其描述，否则返回undefined
let str = Symbol.keyFor(symbol1);
console.log(str); // "symbol1"

let symbol3 = Symbol("symbol3");
console.log(Symbol.keyFor(symbol3)); // undefined